package com.easycoding.framework.repository.support;

import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.jdbc.core.JdbcTemplate;

/**
 * 自定义Repository父类，自动注入jdbcTemplate模板、mybatis模板、JPA实体管理器
 * @author Wangjk
 * @Version 1.0
 * @Date 2013-3-22
 */
public abstract class CustomRepositorySupport {
	
	/**
	 * jdbcTemplate模板
	 */
	@Resource
	private JdbcTemplate jdbcTemplate;
	
	/**
	 * mybatis模板
	 */
	@Resource
	private SqlSessionTemplate sqlSessionTemplate;
	
	/**
	 * JPA模板
	 */
	@PersistenceContext
	private EntityManager entityManager;
	
	/**
	 * 获取jdbcTemplate模板
	 * @return jdbcTemplate jdbcTemplate模板
	 */
	public JdbcTemplate getJdbcTemplate() {
		return jdbcTemplate;
	}

	/**
	 * 设置jdbcTemplate模板
	 * @param jdbcTemplate jdbcTemplate模板
	 */
	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}

	/**
	 * 获取mybatis模板
	 * @return sqlSessionTemplate mybatis模板
	 */
	public SqlSessionTemplate getSqlSessionTemplate() {
		return sqlSessionTemplate;
	}

	/**
	 * 设置mybatis模板
	 * @param sqlSessionTemplate mybatis模板
	 */
	public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
		this.sqlSessionTemplate = sqlSessionTemplate;
	}

	/**
	 * 获取JPA实体管理器
	 * @return entityManager JPA实体管理器
	 */
	public EntityManager getEntityManager() {
		return entityManager;
	}

	/**
	 * 设置JPA实体管理器
	 * @param entityManager JPA实体管理器
	 */
	public void setEntityManager(EntityManager entityManager) {
		this.entityManager = entityManager;
	}

}
